﻿#!/bin/bash
#author:Castle Moriarty
#date:2025-10-17

### 创建10个用户，并给他们设置随机密码，密码记录到一个文件里，文件名userinfo.txt
### 用户从user_00 到 user_09
### 密码要求：包含大小写字母以及数字，密码长度15位


## 先查看/tmp/userinfo.txt文件是否存在，存在的话先删除，以免影响到本次脚本执行结果
if [ -f /tmp/userinfo.txt ]
then
  rm -f /tmp/userinfo.txt
fi

## 判断mkpasswd命令在不在，我们用该命令来生成随机字符串，也就是用户的密码
if ! which mkpasswd
then
  yum install -y expect
fi

## 借助seq生成从00到09,10个数的队列
for i in `seq -w 0 09`
do
  ## 每次生成一个随机字符串，将该字符串赋值给p变量
  ## mkpasswd 命令默认生成的字符串会包含大小写字母和数字和特殊符号
  ## 如果不要求特殊符号，可以加-s 0 来限定不使用特殊符号
  p=`mkpasswd -l 15 -s 0`
  ## 添加用户，并给该用户设置密码
  useradd user_${i} && echo "${p}"| passwd --stdin user_${i}
  echo "user_${i} ${p}" >> /tmp/userinfo.txt
done


## 关键知识点总结
## mkpasswd 可以生成随机字符串，-l 指定长度，-s 指定特殊字符个数，-c 指定小写字母个数，-C 指定大写字母个数，-d 指定数字个数
## seq 可以生成序列，用法：seq 1 5;seq 5; seq 1 2 10;seq 10 -2 1;seq -w 1 10
## passwd --stdin username
